package com.liuhouse1.config;

import com.liuhouse1.web.MyServlet;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CharacterEncodingFilter;

/**
 * 相当于SpringIOC容器
 * 配置类
 */
@Configuration
public class WebSystemConfig {

    //定义好了Servlet之后,就要使用Servlet
    @Bean
    public ServletRegistrationBean servletRegistrationBean(){
        MyServlet myServlet = new MyServlet();
        //Servlet的注册Bean 将Servlet注册到IOC容器中
        //第一个参数 是需要注册的servlet程序 第二个参数是使用servlet程序的路径  这里表示所有请求
        ServletRegistrationBean bean = new ServletRegistrationBean(myServlet , "/*");
        return bean;
    }

    //注册过滤器
//    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        //定义过滤注册器
        FilterRegistrationBean bean = new FilterRegistrationBean();
        //定义编码过滤器【spring_boot内置的】
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
        //指定使用的编码方式
        encodingFilter.setEncoding("utf-8");
        //指定request , response都使用的encoding的值
        encodingFilter.setForceEncoding(true);
        //将编码过滤器添加到bean对象中，交给spring进行管理
        bean.setFilter(encodingFilter);
        //这里的过滤器只过滤一次,设置一次,以后所有的请求都是按照过滤器的规则来
        System.out.println("走到过滤器了");
        //添加过滤器的url 规则  这里过滤所有请求
        bean.addUrlPatterns("/*");
        return bean;
    }


}
